import http from '../../utils/api' // 引入api接口管理文件
var app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // dongtai: false,
    currentTab: '0',
    page: 1, // 默认页数
    array: ['删除'],
    tip_show:false, // 默认不展示小红点
    // tip_show_message:false, // 默认不展示小红点 (消息)
    tip_show_news:false, // 默认不展示小红点 （动态）
    timer:'',
  },

  /**
   * tab切换
   * @param {*} e 
   */
  bindPickerChange: function(e) {
    let that = this;
    that.setData({
      index: e.detail.value
    })
    var index_x=that.data.index
    if(index_x==0){ // 删除
        http.message_del({ // 删除系统消息
          data: {
            'message_id': e.currentTarget.dataset.id
          },
          success: res => {
            app.tip(res.info);     
            if(res.code == 1){
              that.setData({
                page: 1
              })
              setTimeout(function () {
                //要延时执行的代码
                that.onLoad(); // 刷新页面
                }, 1000) //延迟时间
            }
          },
          fail: err => {
            console.log(err)
          }
        })
    }
  },

  // 预览图片
  previewImage: function (e) {
    var that = this
    var key = e.currentTarget.dataset.key; // 当前条目索引
    var index = e.currentTarget.dataset.index; // 当前图片索引
    var pictures = that.data.article_list[key]['image']
    wx.previewImage({
      current: pictures[index],
      urls: pictures
    })
  },

  /**
   * 进入详情页
   */
  list_zhut: function (e) {
    this.insert_row_read(e.currentTarget.dataset.id);
    if(e.currentTarget.dataset.type == 0){  // 评论跳转到文章页面
      wx.navigateTo({
        url: '../dynamic_details/index?news_id=' + e.currentTarget.dataset.news_id,
      })
    }else{ // 回复跳转
      wx.navigateTo({
        url: '../reply_all/index?id=' + e.currentTarget.dataset.comment_id,
      })
    }
    
  },

  /**
   * 详情页
   * @param {*} e 
   */
  list_detail: function(e){
    wx.navigateTo({
      url: '../dynamic_details/index?news_id=' + e.currentTarget.dataset.news_id,
    })
  },

  /**
   * 消息推送进详情
   * @param {} e 
   */
  detail: function(e){
     let type = e.currentTarget.dataset.type;
     let news_id = e.currentTarget.dataset.news_id;
     if(type == 1){
      wx.navigateTo({
        url: '../dynamic_details/index?news_id=' + news_id,
      })
     }
  },

  /**
   * 跳转详情页
   * @param {} e 
   */
  huifu: function (e) {
    wx.navigateTo({
      url: '../dynamic_details/index?news_id=' + e.currentTarget.dataset.news_id,
    })
  },

  guanzhu: function () {
    wx.navigateTo({
      url: '../follow/index',
    })
  },

  dianzan: function () {
    wx.navigateTo({
      url: '../dianzan/index',
    })
  },

  // 切换tab
  swichNav: function (e) {
    var that = this;
    if (this.data.currentTab === e.target.dataset.current) {
      this.uptime(this.data.currentTab);
    } else {
      that.setData({
        currentTab: e.target.dataset.current,
        page: 1, // 重置分页
      })
    }
    switch (that.data.currentTab) {
      case '0': // 请求文章
        this.uptime(0);
        http.news_followed({
          data: {
            'page': that.data.page
          },
          // 查关注人的文章
          success: res => {
            let zanwu;
            if (res.code == 1) { // 成功的情况
              if (res.data.length < 1) {
                zanwu = 1; // 是否显示没有数据
              } else {
                zanwu = 0;
              };
              that.setData({
                article_list: res.data,
                zanwu: zanwu
              })
            } else {
              app.tip(res.info);
            }
          },
          fail: err => {
            console.log(err)
          }
        })
        break;
      case '1': // 请求评论  
        http.news_comment_mine({
          data: {
            'page': that.data.page
          },
          success: res => {
            let zanwu
            if (res.code == 1) { // 成功的情况
              if (res.data.length < 1) {
                zanwu = 1; // 是否显示没有数据
              } else {
                zanwu = 0;
              };
              that.setData({
                comment_list: res.data,
                zanwu: zanwu
              })
            } else {
              app.tip(res.info);
            }
          },
          fail: err => {
            console.log(err)
          }
        })
        break;
      case '2': // 通知列表
        this.uptime(2);
        http.message_lists({
          data: {
            'page': that.data.page
          },
          success: res => {
            if (res.code == 1) { // 成功的情况
              let zanwu;
              if (res.data.length < 1) {
                zanwu = 1
              } else {
                zanwu = 0
              };
              that.setData({
                message_list: res.data,
                zanwu: zanwu
              });
            } else {
              app.tip(res.info);
            }
          },
          fail: err => {
            console.log(err)
          }
        })
        break;
    }
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
   
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    if (typeof this.getTabBar === 'function' &&
    this.getTabBar()) {
    this.getTabBar().setData({
      selected: 1
    })
  }

    let that = this;
    // 请求判断是否显示小红点
    that.get_lasts();
    // 显示未读数量
    that.get_unread_num();
    // 轮询实时提示红点
    this.setData({
      timer:setInterval(function () {
        that.get_lasts();
        that.get_unread_num();
      },3000)
    })
    // that.timer:setInterval(function () {
    //   that.get_lasts();
    //   that.get_unread_num();
    // },3000)
    switch (that.data.currentTab) {
      case '0':
        // this.uptime(0);
        http.news_followed({
          data: {
            'page': that.data.page
          },
          // 查关注人的文章
          success: res => {
            let zanwu;
            if (res.code == 1) { // 成功的情况
              if (res.data.length < 1) {
                zanwu = 1
              } else {
                zanwu = 0
              };
              that.setData({
                article_list: res.data,
                zanwu: zanwu
              });
            } else {
              app.tip(res.info);
            }
          },
          fail: err => {
            console.log(err)
          }
        })
        break;
        case '1': // 请求评论  
        // this.uptime(1);
        http.news_comment_mine({
          data: {
            'page': that.data.page
          },
          success: res => {
            let zanwu
            if (res.code == 1) { // 成功的情况
              if (res.data.length < 1) {
                zanwu = 1; // 是否显示没有数据
              } else {
                zanwu = 0;
              };
              that.setData({
                comment_list: res.data,
                zanwu: zanwu
              })
            } else {
              app.tip(res.info);
            }
          },
          fail: err => {
            console.log(err)
          }
        })
        break;
      case '2': // 通知列表
        // this.uptime(2);
        http.message_lists({
          data: {
            'page': that.data.page
          },
          success: res => {
            if (res.code == 1) { // 成功的情况
              let zanwu;
              if (res.data.length < 1) {
                zanwu = 1
              } else {
                zanwu = 0
              };
              that.setData({
                message_list: res.data,
                zanwu: zanwu
              });
            } else {
              app.tip(res.info);
            }
          },
          fail: err => {
            console.log(err)
          }
        })
        break;
    }
    wx.stopPullDownRefresh(); // 关闭上拉
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    let that = this;
		clearInterval(that.data.timer);
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    let that = this;
		clearInterval(that.data.timer);
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    let that = this;
    that.setData({
      page:1, // 重置分页
    })
    that.onShow();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    let that = this
    that.setData({
      page: that.data.page + 1, //每次触发上拉事件，把page+1  
    });
    // 判断是哪个tab 触底

    switch (that.data.currentTab) {
      case '0': // 请求文章
        //调用分页查询数据的方法，返回新一页的数据为res
        this.uptime(0);
        http.news_followed({
          data: {
            'page': that.data.page
          },
          success: res => {
            if (res.code == 1) { // 成功的情况
              var tmpArr = that.data.article_list;
              // 这一步实现了上拉加载更多
              tmpArr.push.apply(tmpArr, res.data);
              let show;
              if (res.data.length < 1) {
                show = 1 // 显示没有更多
              } else {
                show = 0 // 显示没有更多
              }
              that.setData({
                article_list: tmpArr,
                show: show
              })
            } else {
              app.tip(res.info);
            }
          },
          fail: err => {
            console.log(err)
          }
        })
        break;
      case '1': // 请求评论  
        // this.uptime(1)
        http.news_comment_mine({
          data: {
            'page': that.data.page
          },
          success: res => {
          if (res.code == 1) { // 成功的情况
              var tmpArr = that.data.comment_list;
              // 这一步实现了上拉加载更多
              tmpArr.push.apply(tmpArr, res.data);
              let show;
              if (res.data.length < 1) {
                show = 1 // 显示没有更多
              } else {
                show = 0 // 显示没有更多
              }
              that.setData({
                comment_list: tmpArr,
                show: show
              })
            } else {
              app.tip(res.info);
            }
          },
          fail: err => {
            console.log(err)
          }
        })
        break;
      case '2': // 通知列表
        this.uptime(2);
        http.message_lists({
          data: {
            'page': that.data.page
          },
          success: res => {
            if (res.code == 1) { // 成功的情况
              var tmpArr = that.data.message_list;
              // 这一步实现了上拉加载更多
              tmpArr.push.apply(tmpArr, res.data);
              let show;
              if (res.data.length < 1) {
                show = 1 // 显示没有更多
              } else {
                show = 0 // 显示没有更多
              }
              that.setData({
                message_list: tmpArr,
                show: show
              })
            } else {
              app.tip(res.info);
            }
          },
          fail: err => {
            console.log(err)
          }
        })
        break;
    }

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function (e) {
    let news_id = e.target.dataset.news_id;
    let that = this;
    let param = {
      news_id: news_id
    }; // 提交参数
    // 请求分享接口 记录分享次数
    http.news_share({
      data: param,
      success: res => {
        if (res.code == 1) {
          for (var i = 0; i < that.data.article_list.length; i++) {
            if (that.data.article_list[i].id == news_id) {
              // 点赞成功时遍历msg对象并获取到当前节点的id
              that.setData({
                // 改变对象节点的分享数量
                ['article_list[' + i + '].share']: that.data.article_list[i]['share'] + 1,
              })
            }
          }
        } else {
          app.tip(res.info)
        }
      },
      fail: err => {
        console.log(err)
      }
    })
  },

  /**
   * 点赞
   * @param {*} e 
   */
  giveLike: function (e) {
    let data = e.currentTarget.dataset;
    let that = this; // 传来的数据
    let status = 0; // 默认点赞动作
    if (data.like_status == 0) {
      status = 1; // 点过赞 再点就是取消点赞
    }
    let param = {
      news_id: data.news_id,
      status: status
    };
    http.news_like({
      data: param,
      success: res => {
        app.tip(res.info, 1000); // 提示信息
        if (res.code == 1) {
          for (var i = 0; i < that.data.article_list.length; i++) {
            if (that.data.article_list[i].id == data.news_id) {
              // 点赞成功时遍历msg对象并获取到当前节点的id
              that.setData({
                // 改变对象节点的点赞状态
                ['article_list[' + i + '].like_status']: status,
              })
              if (status == 0) { // 点赞+1 取消减1
                that.setData({
                  ['article_list[' + i + '].like']: that.data.article_list[i]['like'] + 1,
                })
              } else {
                that.setData({
                  ['article_list[' + i + '].like']: that.data.article_list[i]['like'] - 1,
                })
              }
            }
          }
        }
      },
      fail: err => {
        console.log(err)
      }
    })
  },

  /**
   * 更新最后阅读时间
   */
  uptime:function(type){
    http.user_uptime({
      data:{type:type},
      success: res => {
        switch(type){
          case 0:
            this.setData({
              tip_show_news:false
            })
          break;
          // case 1:
          //   this.setData({
          //     tip_show_message:false
          //   })
          // break;
          case 2:
            this.setData({
              tip_show:false
            })
          break;
        }
        
      },
      fail: err => {
        console.log(err)
      }
    })
  },

  // 获取小红点提示
  get_lasts:function(){
    let that = this;
    http.get_latest({
      success: res => {
        that.setData({
           tip_show:res.data.readtime,
           tip_show_news:res.data.readtime_news,
          //  tip_show_message:res.data.readtime_message,
        })
      },
      fail: err => {
        console.log(err)
      }
    })
  },

  /**
   * 获取未读数量
   */
  get_unread_num:function(){
    let that = this;
    http.data_unread_num({
      success: res => {
        that.setData({
            read_info:res.data
        })
      },
      fail: err => {
        console.log(err)
      }
    })
  },
  // 单条插入已读 
  insert_row_read:function(type_id){
    http.data_insert_row_read({
      data: {
        'type_id': type_id
      },
      success: res => {
        if (res.code != 1) { // 成功的情况
          app.tip(res.info);
        } 
      },
      fail: err => {
        console.log(err)
      }
    })
  },

  videometa:function (e) {
    var that = this;
    //获取系统信息
    wx.getSystemInfo({
      success (res) {
        //视频的高
        var height = e.detail.height;
        
        //视频的宽
        var width = e.detail.width;
 
        //算出视频的比例
        var proportion = height / width;

        //res.windowWidth为手机屏幕的宽。
        var windowWidth = res.windowWidth;
 
        let bl = 750/res.windowWidth; //该设备的rpx与px的比例

        let bl_width = windowWidth - windowWidth*0.08 - 60/bl; // 宽度的百分之92 减去 60rpx 转换的像素

        //算出当前宽度下高度的数值
        height = proportion * bl_width;
        that.setData({
          height,
          width:bl_width
        });
      }
    })
  },

})